// 引入request
import request from '@/utils/request'
// 引入品牌对象及其相关的接口类型
import type { TrademarkModel, TrademarkListModel, TrademarkPageListModel } from './model/trademarkModel'
// 定义枚举数据(存储的是接口地址)
enum Api {
  // 根据关键字搜索品牌列表数据的地址
  GetTrademarkListByKeyword = '/admin/product/baseTrademark/findBaseTrademarkByKeyword',
  // 根据id获取品牌对象数据的地址
  GetTrademarkById = '/admin/product/baseTrademark/get',
  // 直接获取所有的品牌列表数据的地址
  GetTrademarkListAll = '/admin/product/baseTrademark/getTrademarkList',
  // 根据品牌的id数组获取品牌列表数据的地址
  GetTrademarkListByIds = '/admin/product/baseTrademark/inner/findBaseTrademarkByTrademarkIdList',
  // 根据id删除品牌对象数据的地址
  DeleteTrademarkById = '/admin/product/baseTrademark/remove',
  // 添加品牌对象的地址
  AddTrademark = '/admin/product/baseTrademark/save',
  // 修改品牌对象的地址
  UpdateTrademark = '/admin/product/baseTrademark/update',
  // 根据页码和条数获取品牌列表数据的地址
  GetTrademarkList = '/admin/product/baseTrademark'
}
// 定义接口函数
// 根据关键字获取品牌列表数据
export const getTrademarkListByKeywordApi = (keyword: string) => request.get<any, TrademarkListModel>(`${Api.GetTrademarkListByKeyword}/${keyword}`)
// 根据id获取品牌对象信息数据
export const getTrademarkByIdApi = (id: number) => request.get<any, TrademarkModel>(`${Api.GetTrademarkById}/${id}`)
// 获取所有的品牌列表数据
export const getTrademarkListAllApi = () => request.get<any, TrademarkListModel>(Api.GetTrademarkListAll)
// 根据id数组获取品牌列表数据
export const getTrademarkListByIdsApi = (ids: []) => request.post<any, TrademarkListModel>(`${Api.GetTrademarkListByIds}`, ids)
// 根据id移除品牌对象数据
export const deleteTrademarkByIdApi = (id: number) => request.delete<any, null>(`${Api.DeleteTrademarkById}/${id}`)
// 添加品牌
export const addTrademarkApi = (tm: TrademarkModel) => request.post<any, null>(`${Api.AddTrademark}`, tm)
// 修改品牌
export const updateTrademarkApi = (tm: TrademarkModel) => request.put<any, null>(`${Api.UpdateTrademark}`, tm)
// 根据页码和每页的条数获取品牌列表数据
export const getTrademarkListApi = (page: number, limit: number) => request.get<any, TrademarkPageListModel>(`${Api.GetTrademarkList}/${page}/${limit}`)
// 添加或者修改品牌的数据
export const addOrUpdateTrademark = (tm: TrademarkModel) => {
  if (tm.id) {
    return request.put<any, null>(`${Api.UpdateTrademark}`, tm)
  } else {
    return request.post<any, null>(`${Api.AddTrademark}`, tm)
  }
}